Feedback loop for dynamic network resource allocation

ABSTRACT

A system, apparatus and method for dynamic resource allocation is provided, where a network resource shared by a plurality of electronic devices having unique service profiles and unique billing profiles is monitored. Allocation of the shared network resource as well as the service profiles and billing profiles are dynamically modified.

This application is a reissue of U.S. patent application Ser. No.13/515,101, filed Aug. 13, 2012 (now U.S. Pat. No. 8,600,850) which isthe National Stage under 35 U.S.C. § 371 of PCT/CA2009/001809, filedDec. 10, 2009.

FIELD

The present specification relates generally to networked computing andmore specifically relates to a feedback loop for dynamic networkresource allocation.

BACKGROUND

Mobile computing devices are increasingly being used to access contenthosted on the Internet or other type of network. Different computingdevices can be allocated different service levels, while at the sametime network congestion can change unpredictably, thereby compromisingallocated services levels.

SUMMARY

An aspect of the specification provides a method for dynamic allocationof network resources comprising:

receiving a service profile for each of a plurality of devices sharing anetwork resource;

receiving a billing profile for each of the plurality of devices; and

repeating:

receiving traffic profiles over the network resource for the pluralityof devices;

managing the network resource according to the service profile and thebilling profile if the network resource is fully utilized by the trafficprofiles; and,

dynamically modifying at least one of the service profile and thebilling profile for at least one of the devices if the network resourceis under-utilized by the traffic profile or if the network resourcewould be over-utilized by the traffic profiles;

until the plurality of devices no longer continue to share the networkresource.

The dynamically modifying can comprise increasing or reducing an overallbit-rate cap or data volume cap in a service profile for at least one ofthe devices. It should be noted that the service profile can be based onactual consumption at the device, or it can be based on the consumption(e.g. bandwidth) of the network resource itself.

The dynamically modifying can further comprise increasing or decreasinga rate or a charge in a billing profile for the at least one of thedevices.

The method can further comprise generating a prioritization list of eachof the devices; the prioritization list defining an order in which ofthe devices is subject to the dynamically modifying. One of the devicesat a first end of the list can be a first device to be subject to thedynamically modifying if the network resource would be over-utilized bythe traffic profiles.

The dynamically modifying can also comprise increasing an overallbit-rate cap or data volume cap for the one of the devices at the firstend of the list. It should be noted that the service profile can bebased on actual consumption at the device, or it can be based on theconsumption (e.g. bandwidth) of the network resource itself.

The increasing can be configured to fully utilize a remainder of acapacity of the network resource.

One of the devices at a first end of the list can be a first device tobe subject to the dynamically modifying if the network resource would beunder-utilized by the traffic profiles.

The dynamically modifying can comprise decreasing an overall bit-ratecap or data volume cap for the one of the devices at the first end ofthe list.

The decreasing can be configured to bring the traffic profiles intoalignment with full utilization of a capacity of the network resource.

Another aspect of the specification provides an apparatus for dynamicallocation of network resources comprising: a network interfaceconfigured to receive a service profile for each of a plurality ofdevices sharing a network resource and to receive a billing profile foreach of the plurality of devices; and a processor connected to thenetwork interface and configure to repeat: receiving traffic profilesover the network resource for the plurality of devices; managing thenetwork resource according to the service profile and the billingprofile if the network resource is fully utilized by the trafficprofiles; and, dynamically modifying at least one of the service profileand the billing profile for at least one of the devices if the networkresource is under-utilized by the traffic profile or if the networkresource would be over-utilized by the traffic profiles; until theplurality of devices no longer continue to share the network resource.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a schematic representation of a system with a feedback loopfor dynamic resource allocation.

FIG. 2 shows a schematic representation of the policy server of thesystem of FIG. 1.

FIG. 3 shows a schematic representation of the billing server of thesystem of FIG. 1.

FIG. 4 shows a flow-chart depicting a method for dynamic resourceallocation.

FIG. 5 shows a flow-chart depicting another method for dynamic resourceallocation.

FIG. 6 shows a flow-chart depicting a method for prioritizing devicesfor subsequent dynamic resource allocation.

FIG. 7 shows a schematic representation of a system with a feedback loopfor dynamic resource allocation as applied to a utility distributionnetwork.

DETAILED DESCRIPTION OF THE EMBODIMENTS

It is to be understood that the embodiments discussed herein arenon-limiting examples of certain implementations. Variations on thoseexamples are contemplated. Referring now to FIG. 1, a system with afeedback loop for dynamic resource allocation is indicated generally at50. In a present embodiment system 50 comprises a plurality of mobilecomputing devices 54-1, 54-2 . . . 54-n (collectively, computing devices54, and generically, computing device 54. This nomenclature is usedelsewhere).

At least one wireless base station 58 interconnects computing device 54and a communication network 62. A first backhaul link 66-1 connects basestation 58 to network 62. A second backhaul link 66-2 connects network62 to a policy server 70 and a third backhaul link 66-3 connects network62 to billing server 74. Policy server 70 is also configured to sendpolicy data to billing server 74 via a first link 80-1 and to receivebilling data from billing server 74 via a second link 80-2. Policyserver 70 is also configured to receive resource utilization data fromand send policy instructions to network elements in network 62 via link66-2. Policy server 70 is also configured to receive resourceutilization data from and send policy instructions to base station 58via link 67. Billing server 74 is also configured to receive resourceutilization data from and send instructions to network elements innetwork 62 via link 66-3. It should be noted that links 80 can beimplemented via a single physical connection, but are illustrated aslogically separate for ease of description of the teachings herein. Itshould also be noted that the functionality accorded by link 67 can beimplemented via link 66-1, network 62, and link 66-2 but are illustratedas logically separate for ease of description of the teachings herein.

A bearer path 84, typically wireless, is used to interconnect basestation 58 with each computing device 54. In a present exemplaryembodiment, bearer path 84 can be based on one or more protocols,including without limitation, Global System for Mobile communications(GSM), General Packet Radio Service (GPRS), Enhanced Data Rates for GSMEvolution (EDGE), the Third-generation mobile communication system (3G),Evolution-Data Optimized (EVDO), High Speed Packet Data (HSPA), LongTerm Evolution (LTE), Institute of Electrical and Electronic Engineers(IEEE) 802.11 (WiFi), IEEE 802.16 Worldwide Interoperability forMicrowave Access (WiMax), IEEE 802.20 Mobile Broadband Wireless Access(MBWA) or other wireless protocols. In variations, path 84 can be wired.It is also contemplated that each device 54 can be configured to use aplurality of different protocols by using different radios therein.

Network 62 can be implemented using public land mobile network (PLMN)infrastructures that support base station 52, policy server 70 andbilling server 74. Network 62 thus further connects to a data network 88such as the Internet, such that content 92 hosted on data network 88 isaccessible to devices 54 via network 62, and also so that devices 54 cansend content to other computers (including other computing devices) (notshown) connected to data network 88.

Computing device 54 can be any type of computing device that can be usedin a self-contained manner and to interact with content available overnetwork 88. Interaction includes displaying of information on computingdevice 54 as well as to receive input at computing device 54 that can inturn be sent back over network 62 or network 88 or both. Contemporaryversions of device 54 can typically be used for both wireless voice(e.g. telephony) and wireless data (e.g. email, web browsing, text,video streaming, audio streaming, application downloading)communications. In a present non-limiting exemplary embodiment,computing device 54 can be a mobile computing device with the combinedfunctionality of a personal digital assistant, a cell phone, camera,video recorder, email paging device, and an application launcher.(Although variants on device 54 can include a palm top computer orlaptop computer with a reduced screen such as an ASUS EEE from ASUSTekComputer Inc. of Taiwan). Many known cellular telephone models, orvariants thereof, are suitable for the present embodiment.

In a non-limiting structural example, device 54 thus includes aplurality of input mechanisms such as a keyboard, a pointing device, anda microphone. A pointing device can be implemented as a track wheel,trackball or the like. Other input devices, such as a touch screen arealso contemplated. Input from input mechanisms are received at aprocessor that is configured to communicate with a non-volatile storageunit (e.g. Erasable Electronic Programmable Read Only Memory (“EEPROM”),Flash Memory) and a volatile storage unit (e.g. random access memory(“RAM”)). Programming instructions that implement the functionalteachings of device 54 as described herein are typically maintained,persistently, in the non-volatile storage unit and used by the processorwhich makes appropriate utilization of volatile storage during theexecution of such programming instructions. It should be understood thatthe non-volatile storage unit and volatile storage unit are non-limitingexamples of computer readable media which can store programminginstructions that are executable on the device's processor. Suchcomputer readable media can also comprise removable non-volatilestorage.

The processor of device 54 is in turn is also configured to controlvarious output mechanisms, such as a speaker and a display. The device'sprocessor also contains at least one network interface, which areimplemented in a present embodiment as radios configured to communicateover bearer path 84. In general, it will be understood that the device'sinterface(s) is (are) configured to correspond with the networkarchitecture that defines a particular bearer path 84. It should beunderstood that in general a wide variety of configurations for device54 are contemplated.

In a present embodiment, device 54 is also configured to maintainvarious applications such as, by way of non-limiting example, webbrowsers, streaming media players, telephony voice applications, orinstant message applications or all of them.

Referring to FIG. 2, server 70 can be based on any well-known serverenvironment including various input devices such as a keyboard 100 and apointing device 102 can be used to provide input to one or more centralprocessing units 108. Server 70 can include a module that houses the oneor more central processing units 108, as well as volatile storage 116(e.g. random access memory), non-volatile storage 112 (e.g. hard diskdevices) and network interfaces 128 to allow server 70 to communicateover network 62 and with server 74. Various output devices such as adisplay 124 that are controlled by the one or more central processingunits 108 can also be provided. For example, server 70 can be a Sun FireV480 from Sun Microsystems, Inc. of Palo Alto Calif., running a UNIXoperating system, and having four central processing units eachoperating at about nine-hundred megahertz and having about sixteengigabytes of random access memory. However, it is to be emphasized thatthis particular server is merely exemplary, and a vast array of othertypes of computing environments are contemplated. For example, server 70can be a Policy and Charging Rules Function (PCRF) server per the 3rdGeneration Partnership Project (3GPP) and 3rd Generation PartnershipProject 2 (3GPP2) standards, Resource and Admission Control Subsystem(RACS) server per the European Telecommunications Standards Institute(ETSI) The Telecoms & Internet converged Services & Protocols forAdvanced Networks (TISPAN) standards, Policy Decision Physical Entity(PD-PE) per International Telecommunication Union (ITU) standards,PacketCable™ Multimedia (PCMM) policy server per Data Over Cable ServiceInterface Specification (DOCSIS) CableLabs standards, or BandwidthManager server per MultiService Forum (MSF) standards. Referring to FIG.3, server 74 can be based on any well-known server environment includingvarious input devices such as a keyboard 200 and a pointing device 202can be used to provide input to one or more central processing units208. Server 74 can include a module that houses the one or more centralprocessing units 208, as well as volatile storage 216 (e.g. randomaccess memory), non-volatile storage 212 (e.g. hard disk devices) andnetwork interfaces 228 to allow server 74 to communicate over network 62and with server 70. Various output devices such as a display 224 thatare controlled by the one or more central processing units 208 can alsobe provided. For example, server 74 can be a Sun Fire V480 from SunMicrosystems, Inc. of Palo Alto Calif., running a UNIX operating system,and having four central processing units each operating at aboutnine-hundred megahertz and having about sixteen gigabytes of randomaccess memory. However, it is to be emphasized that this particularserver is merely exemplary, and a vast array of other types of computingenvironments are contemplated. For example, in a prepaid environmentserver 74 can be a Service Control Point (SCP), Authentication,Authorization and Accounting (AAA) server, On-line Charging Server(OCS), or billing server or the like according to standards for same.

Referring again to FIGS. 1 and 2, policy server 70 is configured tomaintain, and enforce, a plurality of service profiles 96. Each serviceprofile 96 corresponds to each device 54. It should be noted that eachservice profile 96 can be corresponded to a device 54 using an absoluteidentifier such as an International Mobile Equipment Identity (IMEI)that is uniquely associated with the device 54, or a relative identifiersuch as an International Mobile Subscriber Identity (IMSI) that can bedynamically associated with different devices 54. Other types ofabsolute identifiers include media access control (MAC) address(although recognizing the limitation that MAC addresses can duplicate)Other types of relative identifiers include a Mobile Subscriber ISDNNumber (MISDN), internet protocol (IP) address, Billing Account Number(BAN), or an email address. Other types of absolute identifiers andrelative identifiers will now occur to those skilled in the art.

Each service profile 96 can thus include any traffic parameter thatregulates traffic to and from device 54 via network 62, and link 66-1and path 84 respective to that profile. Traffic parameters can includean overall bit-rate cap or data volume cap over a predefined timeperiod. Alternatively, or in addition, traffic parameters can be moregranular, and include permissions for different content that may becarried over path 84 including, by way of example, restrictions on theuse of specific protocols or codecs employed to transfer content such asvideo or auto streaming. Traffic parameters can also pertain to specificsessions or logical channels including packet data protocol (PDP)contexts. Content types can include data, text, instant messaging,voice, video, graphics, services and applications. Permissions for thesame content type can be restricted based on providers; for exampleinstant messaging via Yahoo!™ can be permitted, while instant messagingfrom Google™ may not permitted. Permissions need not be “on” or “off”,but may be defined by bit-rates or caps or both. For example, instantmessaging via Yahoo!™ can be permitted at a given capped bit-rate, or agiven capped volume of data, or both, while instant messaging fromGoogle™ can be permitted at a second given capped bit rate, or a secondgiven capped volume of data, or both. Each service profile 96 can alsoinclude privacy settings for content. For example, for a location awaremapping application, service profile 96 can be configured to restrict,or permit, or only permit under certain criteria, the disclosure of thelocation of a respective device 54.

Policy server 70 is therefore also configured to have access to variousattributes of each device 54 for which a service profile 96 exists,including but not limited to, presence, location and current trafficactivities over its respective link 84. The policy server 70 is alsoconfigured to send instructions to appropriate network elements innetwork 62 or base station 58 to ensure that traffic over a respectivelink 84 conforms with the relevant policy.

Referring again to FIGS. 1 and 3, billing server 74 is configured tomaintain, and enforce, a plurality of billing profiles 100. Each billingprofile 100 corresponds to each device 54. Like each service profile 96,each billing profile can be corresponded to a device 54 using anabsolute identifier or a relative identifier or both. It should be notedthat in any event each service profile 96 and each billing profile 100can be matched together for a given device 54.

Each billing profile 100 can thus include any billing parameter thatregulates rating or charging or both of traffic to and from device 54via network 62, link 66-1, and link 84. Thus, as used herein, billingrefers to any action that comprises traffic rating, or traffic charging,or both. Traffic rating refers to establishing a unit of chargeassociated with a particular type of traffic. For example, voice calltraffic over link 84 may be rated at five cents per minute. Trafficcharging refers to a total charge that is applied to traffic over link84. For example, voice call traffic that occurs over a two minute periodwould be charged ten cents (i.e. two times five cents equal ten cents).Billing profile 70 can also indicate “payment profile” or a creditscore.

Billing parameters can include different rating or charging fordifferent content that may be carried over path 84. As noted above,content types can include data, text, instant messaging, voice, video,graphics, services and applications. Rating for the same content typecan be varied based on providers; for example instant messaging viaYahoo!™ can be rated at two cents per kilobyte, while instant messagingfrom Google™ may be rated at three cents per kilobyte. Charging can bedone on a prepaid or post paid basis. Traffic rating and trafficcharging amounts can be structured to vary for different times of day,or different days of the week, or based on whether or not a device 54 is“roaming”, or calculated at different tiers based on whether trafficover link 84 exceeds a certain bit-rate cap or data volume cap.

Billing server 74 is therefore also configured to have access to variousattributes of each device 54 for which a service profile 96 exists,including but not limited to, presence, location and current trafficactivities over its respective link 84. The billing server 74 is alsoconfigured to send instructions to appropriate network elements innetwork 62 or base station 58 to ensure that traffic over a respectivelink 84 conforms with the relevant billing parameters. For example, if aparticular device 54 has a prepaid charging structure, and that device54 no longer has sufficient balance to carry further traffic, thenbilling server 74 can instruct the appropriate network elements innetwork 62, or base station 58, to cease carrying further traffic to orfrom that device 54.

Those skilled in the art will now appreciate that a plurality ofdifferent attributes can be used to define various service profiles 96or billing profiles 100 or both. Further discussions on such attributescan be found in currently commonly owned applications WO2008/025157entitled Method and System for Applying a Policy to TelecommunicationServices and WP 2009/082806 entitled Policy-Based Communication Systemand Method and PCT/CA2008/001197 entitled Application of Policy forSubscriber Context, the contents of all of which are incorporated hereinby reference.

Referring now to FIG. 4, a flowchart depicting a method for dynamicresource allocation is indicated generally at 300. Method 300 can beimplemented on system 50 or a suitable variation thereof.

Block 305 comprises grouping device according to a shared networkresource. Block 305 can be performed by profile server 70 queryingnetwork elements in network 62 to ascertain which devices 54 areutilizing base station 58 or any other shared resource or networkelement in network 62 or link 66-1 (for example, media server, GatewayGPRS Support Node (GGSN), Serving Gateway GPRS Support Node (SGSN),back-haul link, router). The result of block 305 in system 50 is thatdevices 54-1, 54-2 and 54-n are logically grouped. At this point it canbe noted that system 50 is simplified in that only a single base station58 and only three devices 54 are shown, but system 50 can be scaled tohundreds or thousands of base stations 58 or other network access pointswhere a plurality of links, such as links 84, share a common physicalnetwork resource, such that contention for that resource between aplurality of devices 54 is possible. Those skilled in the art willrecognize that devices 54 may be mapped to more than one shared resourceor network element.

Block 310 comprises receiving at least one default service profile.Block 310 can be performed by server 70 receiving one more serviceprofiles 96 respective to each device 54 (from the grouping at block305) from non-volatile storage 112 into volatile storage 116 so thatservice profiles 96 are accessible to processor 108.

Block 315 comprises receiving one or more default billing profiles.Block 315 can also be performed by server 70 receiving one or morebilling profiles 100 (for the same devices 54 as block 310) fromnon-volatile storage 212 of server 74 over link 80-2.

Block 320 comprises determining if there is any active traffic over agiven shared network resource corresponding to the grouping of devicesfrom block 305. In system 50, block 320 can be implemented by server 70receiving traffic profile data from network infrastructure in network 62or base station 58 indicating whether or not one or more of links 84 areactive. On a “no” determination at block 320, method 300 returns toblock 305. A “no” determination may be reached if no links 84 (or any ofthe associated shared network resources) are active. In a scaled versionof system 50 including a plurality of base stations, a “no”determination may also be reached if a given device 54 is no longerassociated with a given base station (or any other shared resource ornetwork element in network 62 or link 66-1) and/or has moved to coverageof another base station (or any other shared resource or network elementin network 62 or link 66-1). In either event, method 300 returns toblock 305 where the grouping of devices is performed a new.

A “yes” determination at block 320 lead to block 325, at which pointtraffic profiles for each link 84 (or for any other shared resource ornetwork element in network 62 or link 66-1) is received. Block 320 canbe performed by server 70 receiving the particulars of traffic profiledata from network infrastructure in network 62 or base station 58. Suchtraffic profile data, it will now be appreciated, is constantlychanging. The traffic profile data can be compared to correspondingservice profiles. For example, where service profile 96 data includesrestrictions on access to a given type of content 92, then trafficprofile information at block 325 will include an identification of atype of content 92 that is being requested. Traffic profile data alsoincludes more than the type of content 92 that is being requested, butalso includes the actual data volumes, data rates and content beingcarried over all links 84. At this point the skilled reader is invitedto recall the exemplary ranges of types of service profile 96 describedabove to entertain further examples of the nature of traffic profiledata that can be received at block 325.

Block 330 comprises determining if the traffic profile(s) received atblock 325 can be accommodated according to the service profiles. Ingeneral, block 335 includes an assessment as to whether the overallcapacity of the shared network resource between devices 54 and basestation 58 (or any other shared resource or network element in network62 or link 66-1 that supports the delivery of services to devices 54)can actually accommodate the traffic profiles in a manner consistentwith the service profiles.

A “yes” determination can be reached at block 330 according to thisexample: assume that base station 58 is capable of sending data to alldevices 54 connected to base station 58 at a maximum bit rate of twentymegabits per second. Now assume that all devices 54 each have a serviceprofile that guarantees each device 54 a maximum bit rate of fivemegabits per second. Now assume that each device 54 has requestedcontent 92 that fully consumes the maximum bit rate of five megabits persecond. In this example, contention will not exist, as base station 58will be able to provide the demanded full fifteen megabits per second,which thereby leads to a “yes” determination at block 330. Those skilledin the art will recognize that traffic and service profiles can alsoinclude service or application specific attributes such as the maximumnumber of sessions that can be supported for a given service orapplication, due to, for example, processor speed or memory limitationsin a given server that is transcoding the sessions. For example, a givennetwork resource such as a media server can be determined to have amaximum capacity of supporting twenty video streaming sessionssimultaneously to devices 54 irrespective of the absolute aggregatebandwidth in megabits per second. Those skilled in the art will alsorecognize that traffic and service profiles can also include variousservice or application centric parametric attributes required to achievea given level of fidelity (e.g. latency for steaming services). Otherexamples of how a “yes” determination can be reached at block 330 willnow occur to those of skill in the art.

A “yes” determination at block 330 leads to block 335, in which caselinks 84, network infrastructure within network 62, and base station 58are managed according to service profile 96 by profile server 70,Likewise billing is managed according to billing profiles 100 by billingserver 74.

A “no” determination can be reached at block 330 according to thisexample: assume that base station 58 is capable of sending data to alldevices 54 connected to base station 58 at a maximum bit rate of twentymegabits per second. Now assume that all devices 54 each have a serviceprofile that guarantees each device 54 a maximum bit rate of sevenmegabits per second. Now assume that each device 54 has requestedcontent 92 that fully consumes the maximum bit rate of seven megabitsper second. In this example, contention will exist, as base station 58is unable to provide the demanded full twenty-one megabits per second,which thereby leads to a “no” determination at block 330. Other examplesof how a “no” determination can be reached at block 330 will now occurto those of skill in the art.

A “no” determination at block 330 leads to block 340, in which caseservice profiles 96 or billing profiles 100 or both of them aredynamically modified to accommodate contentions that lead to the “no”determination at block 330. In the example from the previous paragraph,a modification of service profiles 96 can include automatically reducingthe maximum guaranteed bit rate for one or all of devices 54 from sevenmegabits per second to a lower maximum guaranteed bit rate such that thecontention is resolved.

A corresponding modification can be made to adjust data in the billingprofile 100 to reflect a credit for the reduced maximum guaranteed bitrate.

From block 340, method 300 moves to block 335 at which point links 84(or any other shared resource or network element in network 62 or link66-1) are managed according to the modified service profile or billingprofile or both. Those skilled in the art will recognize that a varietyof means can be used to enforce or regulate traffic characteristics inthe associated shared network resources including the invocation oftraffic, service or policy controls via policy server 70 and links 66-2and/or 67 as well as billing server 74 and links 66-3.

From block 335, method 300 returns to block 320 and a determination isagain made whether traffic over the shared network resource is active,as previously described. Method 300 continues from block 320 aspreviously described. At this point it can be noted, however, that ifblock 340 has been invoked, and a “no” determination is reached at block320 then the default service profile(s) and billing profile(s) will bere-established for each device 54. On the other hand, a “yes”determination at block 320 from this point can lead to ongoingmanagement of the links 84 (or any other shared resource or networkelement in network 62 or link 66-1) based on the prior modification madeat block 340, or further modifications can be made at block 340 toreflect changing traffic profiles as detected at block 325.

Similarly, at block 330, if block 340 has been invoked, and a “yes”determination is reached at block 330, then the default serviceprofile(s) and billing profile(s) (or a subset thereof) can bere-established for each device 54. On the other hand, a “no”determination at block 330 from this point can lead to ongoingmanagement of the links 84 (or any other shared resource or networkelement in network 62 or link 66-1) based on the prior modification madeat block 340, or further modifications can be made at block 340 toreflect changing traffic profiles as detected at block 325. Anotherembodiment is shown in FIG. 5, which shows a flowchart depicting amethod for dynamic resource allocation as indicated generally at 300a.Method 300a can be implemented on system 50 or a suitable variationthereof. Method 300a is a modification of method 300 and therefore likeblocks bear like references. Of note is that method 300a includes blocks331a and 332a. Block 331a is reached from a “yes” determination at block330a (as described above in relation to block 330.) Block 331a comprisesdetermining if there is extra capacity available over a given sharednetwork resource.

A “yes” determination can be reached at block 331a according to thisexample: assume that base station 58 is capable of sending data to alldevices 54 connected to base station 58 at a maximum bit rate of twentymegabits per second. Now assume that all devices 54 each have a serviceprofile 96 that guarantees each device 54 a maximum bit rate of fivemegabits per second. Now assume that device 54-1 and device 54-2 hasrequested content 92 that fully consumes the maximum bit rate of fivemegabits per second. Now assume that device 54-n has requested content92 that is best provided at a rate of seven megabits per second. In thisexample, no contention will strictly exist, as base station 58 will haveexcess capacity according to the service profile 96 but at the same timebase station 58 will have capacity to provide seven megabits per secondfor device 54-n, even though device 54-n is not, by default, entitled toit. Those skilled in the art will recognize that the capacity associatedwith a given shared network resource can be associated with service orapplication specific attributes such as the maximum number of sessionsthat can be supported for a given service or application. Those skilledin the art will also recognize that traffic and service profiles canalso include various service or application centric parametricattributes required to achieve a given level of fidelity (e.g. latencyfor steaming services). For example, a given network resource such as amedia server can be determined to have a maximum capacity of supportingtwenty video streaming sessions simultaneously to devices 54 with a highdegree of fidelity or forty video streaming sessions to devices 54 witha lower degree of fidelity. Other examples of how a “yes” determinationcan be reached at block 331a will now occur to those of skill in theart.

A “yes” determination at block 331a leads to block 332a, which comprisesmodifying the service or billing profile or both to utilize the extraavailable capacity. Continuing with the example from the previousparagraph, service profile 96 can be modified at block 332a in order toprovide a full seven megabits per second to device 54-n, therebybringing usage of base station 58 up to seventeen megabits per second,still below the twenty megabits per second capacity. At the same time, acorresponding modification can be made to optionally adjust data in thebilling profile 100 for device 54-n a charge for the increased maximumguaranteed bit rate.

A “no” determination can be made at block 331a when base station 58 (orany other shared resource or network element in network 62 or link 66-1)has no extra capacity. Block 335a is thus reached either from a “no”determination from block 331a or from block 332a. Block 335a thenfunctions in the same manner as block 335. Note again that method 300acontinually cycles while traffic over the shared resource is active, andthat as traffic profiles change, service profiles or billing profiles orboth can be dynamically modified according to the available capacityover a given shared resource. Those skilled in the art will recognizethat a variety of means can be used to enforce or regulate trafficcharacteristics in the associated shared network resources including theinvocation of traffic, service or policy controls via policy server 70and links 66-2 and/or 67 as well as billing server 74 and links 66-3.

It is to be understood that there is no particular limitation on the wayin which a particular device 54 is selected for utilization of excesscapacity (as discussed in relation to block 332a) or is selected forreduction of service (as discussed in relation to block 340a and block340.) However, other embodiments contemplate exemplary ways in whichselection can occur. Referring now to FIG. 6, a flowchart depicting amethod for prioritizing devices for subsequent dynamic resourceallocation is indicated generally at 400. Method 400 can be implementedon system 50 or a suitable variation thereof. In a present embodiment,method 400 is performed by billing server 74, though in otherembodiments method 400 can be performed by profile server 70.

Block 405 comprises grouping devices according to a shared networkresource. Block 405 can be performed in much the same manner as block305, whereby profile server 70 querying network elements in network 62to ascertain which devices 54 are utilizing base station 58 (or anyother shared resource or network element in network 62 or link 66-1).When method 400 is performed by billing server 74 in conjunction withprofile server 70 performing method 300 or method 300a, then billingserver 74 can effect block 405 by obtaining the results of performanceof block 305 from profile server 70. However, profile server 70 can alsoperform its own version of block 305 directly.

Block 410 comprises setting an index to a first device. Based on theidentification of devices 54 from block 405, at block 410 those devices54 from block 405 are assembled into a list according to an algorithm(which may include a random selection or a selection based on anattribute associated with an absolute or relative identifier). Block 410comprises setting an index in that list to the first device in the list.

Block 415 comprises receiving billing profile and billing historyinformation for the currently indexed device. Thus, assume that device54-1 is selected as the first indexed device at block 410, then at block415 server 74 retrieves a billing history for device 54-1 (based on theabsolute identifier for device 54-1 or relative identifier for device54-1 or both). The billing history can span any predefined priorperiod—in months or years. Typically, more recent billing history willbe selected. The billing history identifies historical charges, usageand payments (either post-paid or pre-paid) for device 54-1. Optionallyas part of block 415, the billing profile 100 for device 54-1 can alsobe retrieved at block 415. Optionally as part of block 415, the serviceprofile 96 can also be obtained at block 415 from server 70.

Block 420 comprises generating a metric for the currently indexeddevice. The metric can be generated in any manner, but for examplepurposes the metric can be a number between zero and one-hundred: zeroindicates a “lower” metric, whereas one-hundred indicates a “higher”metric. The metric is based on a meta-analysis of the billing history,and, where provided, also the billing profile 100 and service profile 96for the device 54. A higher metric can be generated where a device 54shows a billing history consistent with prompt payments, or paymentsthat exceed a certain threshold, or indicative of a longer billinghistory. Conversely a lower metric can be generated for a billinghistory consistent with slow payments, or payments below a certainthreshold, or indicative of a shorter billing history. A higher metriccan also be applied where a billing history indicates a “bank” ofpromotional rewards or airtime minutes, or bandwidth, of the type taughtin currently co-owned application US20040097245, the contents of whichare incorporated herein by reference. A higher metric can also beapplied where a service profile 96 indicates a permission to pay formomentary increases in bandwidth or other quality of service parameters.A higher metric can be applied where a billing history indicates a usageof a particular service that is above a certain threshold. For example,high historical access of content 92 that generates advertising to adevice 54 can lead to generation of a higher metric. As another example,high historical usage of device 54 for financial transactions which haveservice charges (such as those taught in currently co-owned applicationPCT/CA2008/001219 entitled Universal Financial Transaction Architecturebased on Telecommunication Infrastructure) can lead a generation of ahigher metric. A lower metric can also be applied where a serviceprofile 96 indicates a permission to receive credits in exchange formomentary decreases in bandwidth or other quality of service parameters.A lower metric can be automatically assigned to a pre-paid account witha lower pre-paid balance, (i.e. where the balance is sufficiently lowthat no significant amount of content 92 could be delivered within theremaining balance.) Other examples of how higher or lower metrics can begenerated at block 420 will now occur to those skilled in the art.

Block 425 comprises inserting a device identifier for the currentlyindexed device into a prioritization list based on, and including, themetric generated at block 420. For the first device, that device willsimply be placed as the first device 54 on that prioritization list. Forother devices 54 during subsequent cycling of method 400, those devices54 will be placed on the prioritization list relative to other devices54 according to the metric assigned to those devices. For devices 54having the same metric, a conflict resolution policy can be employed,such as automatically placing the most recently examined device 54 at alocation higher on the prioritization list.

Block 430 comprises setting the index first established at block 410 tothe next device. Block 435 comprises determining if there continues tobe active traffic shared over a given network resource. Thedetermination at block 435 is much like the determination at block 320,and indeed server 70 and server 74 can cooperate on the determinationsmade at block 320 and block 430. A “no” determination at block 435 leadsto block 445 where the prioritization list is cleared and then back toblock 405.

A “yes” determination at block 440 leads to a determination if there areother devices in the index referenced at block 410. If there are furtherdevices (i.e. a “yes” determination at block 440) then method 400 cyclesback through blocks 415, 420, 425, 430 and 435. A “no” determination atblock 440 causes method 400 to cycle back through block 435.

The prioritization list that is generated through various cycles throughblock 425 can then be used at block 340 or block 340a or block 332a orall of them. Devices 54 that are higher in the prioritization list willbe the first eligible for receiving additional capacity at block 332a.Devices 54 that are lower in the prioritization list will be the firstthat have their service profiles 96 reduced at block 340 or block 340a.

As a variation method 400, the prioritization metric generated usingblock 415 and block 420 can be generated on a continuous basis, suchthat method 400 is modified to remove block 415 and block 420 and only aprioritization list at block 425 is generated for any given grouping ofdevices that are sharing a given network resource.

As a further variation of method 400, block 415 can be replaced with, orinclude, a gathering of usage history for a particular device during asimilar time period, to assist in predicting whether that same device islikely to continue to requiring high demand during subsequent iterationsof block 325 or block 325a.

The foregoing discusses certain specific embodiments, but it is to beunderstood that variations, subsets, and combinations of thoseembodiments are contemplated. The claims attached hereto define thescope of monopoly. For example, the functionality of policy server 70and billing server 74 can be merged. However, in the present embodimentthey are separated to reflect currently common network deployments andstandards. Furthermore, the teachings of method 300, method 300a andmethod 400 can be implemented in policy server 70 or billing server 74or both of them, using links 80 to exchange data. It can be desired tohave instances of each method 300, method 300a or method 400 or all ofthem operating in each of policy server 70 and billing server 74 forload balancing or redundancy, with each instance in communication withthe other. It can be further desired to implement method 300, method300a or method 400 in hardware that is completely separate from policyserver 70 and billing server 74. In this variation, policy server 70 andbilling server 74 can be based on a known policy server 70 and a knownbilling server 74 that is defined according to one or moretelecommunication standards. The separate hardware can be designed touse existing programming interfaces in the known policy server 70 andthe known billing server 74 that are normally used for configuration viacustomer service representative using customer service terminal, whereby the separate hardware dynamically modifies service profiles 96 andbilling profiles 100. This allows a retrofit of the teachings hereinonto an existing network, without requiring material modification to theexisting network.

Those skilled in the art will recognize that the system, apparatus, andmethod for dynamic resource allocation can be applied in other domainsof services 792 such as energy (e.g. electricity) or resource (e.g.water, gas) distribution networks or data (e.g. land line Internetconnections) where the cumulative demand of end devices or terminals canexhaust the finite capacity of a given resource or element associatedwith the delivery of energy products, services, or resources. Referringnow to FIG. 7, a system with a feedback loop for dynamic resourceallocation for a utility distribution network is indicated generally at701. Service 792 is accessible to devices 754 via network 762 anddistribution station 758. In a given embodiment system 701 comprises aplurality of meters 754-1, 754-2 . . . 754-n (collectively, meters 754,and generically, meter 754) that monitor the consumption of a givenservice to a given end point. Each meter 754 can thus include a basicmicrocomputer configurations such as that discussed above in relation toany of device 54, or server 70 or server 74, while including a conduitto carry the given service 792 and measure and/or throttle consumptionthereof. For example, in a water or gas context, the conduit can bepiping suitable for carrying water or gas, and the conduit can include atransducer that feeds to the microcomputer to indicate consumptionprofiles. In an electricity context, the conduit can be high-voltagewiring with a combination amp-meter and volt-meter tapping the wiring inorder to monitor consumption profiles of electricity.

A bearer path 784 is used to link distribution station 758 with eachmeter 754. Not shown is a distribution link between the distributionstation 758 and a given end-point for which a given meter 754 is used tomonitor and optionally effect policy instructions. At least onedistribution station 758 interconnects meter 754 and a network 762. Afirst link 766-1 connects distribution station 758 to network 762. Asecond link 766-2 connects network 762 to a policy server 770 and athird link 766-3 connects network 762 to billing server 774. Policyserver 770 is also configured to send policy data to billing server 774via a first link 780-1 and to receive billing data from billing server774 via a second link 780-2. Policy server 770 is also configured toreceive resource utilization data from and send policy instructions tonetwork elements in network 762 via link 766-2. Policy server 770 isalso configured to receive resource utilization data from and sendpolicy instructions to distribution station 758 via link 767. Meters 754are optionally configured to receive policy instructions or sendutilization data to policy server 770 via links 784 (and network 762) orvia separate communication links (not shown). Meters 754 are optionallyconfigured to receive billing instructions or send utilization data tobilling server 774 via links 784 (and network 762) or via separatecommunication links (not shown). Billing server 774 is also configuredto receive resource utilization data from and send instructions tonetwork elements in network 762 via link 766-3. It should be noted thatlinks 780 can be implemented via a single physical connection, but areillustrated as logically separate for ease of description of theteachings herein. It should also be noted that the functionalityaccorded by link 767 can be implemented via link 766-1, network 762, andlink 766-2 but are illustrated as logically separate for ease ofdescription of the teachings herein.

With reference to FIG. 7, those skilled in the art will recognize thesystem, apparatus, and method for dynamic resource allocation can beapplied to detect and regulate the consumption of services throughoutthe distribution network in a manner that mitigates the potential ofexhaustion at a given point within the distribution network given theconsumption and service profiles associated with a given end point asmonitored by meters 754.

It is to be understood that various aspects of the foregoing methods canbe stored on computer-readable media that, when read by computingdevices, causes those computing devices to execute according to thosemethods.

While certain specific embodiments have been discussed, it is to bereiterated that such embodiments are non-limiting examples and thatvariations, subsets and/or combinations of them are contemplated. Thescope of the monopoly sought is defined by the claims attached hereto.

The invention claimed is:
 1. A method for dynamic allocation of networkresources comprising: receiving a service profile for each of aplurality of devices sharing a network resource; receiving a billingprofile for each of said plurality of devices; generating aprioritization list defining an order of said plurality of devices,based on said billing profiles and on a billing history for each of saidplurality of devices; repeating: receiving traffic profiles over saidnetwork resource for said plurality of devices; managing said networkresource according to said service profile and said billing profile ifsaid network resource is fully utilized by said traffic profiles; and,selecting at least one of said devices based on said prioritization listand dynamically modifying at least one of said service profile and saidbilling profile for said selected devices, if said network resource isunder-utilized by said traffic profile or if said network resource wouldbe over-utilized by said traffic profiles; until said plurality ofdevices no longer continue to share said network resource; and when saidplurality of devices are no longer sharing said network resource,clearing said prioritization list.
 2. The method of claim 1 wherein saiddynamically modifying comprises increasing or reducing an overallbit-rate cap or data volume cap in a service profile for at least one ofsaid devices.
 3. The method of claim 2 wherein said dynamicallymodifying further comprises increasing or decreasing a rate or a chargein a billing profile for said at least one of said devices.
 4. Themethod of claim 1 wherein one of said devices at a first end of saidlist is a first device to be subject to said dynamically modifying ifsaid network resource would be under-utilized by said traffic profiles.5. The method of claim 4 wherein said dynamically modifying comprisesincreasing an overall bit-rate cap or data volume cap for said one ofsaid devices at said first end of said list.
 6. The method of claim 5wherein said increasing fully utilizes a remainder of a capacity of saidnetwork resource.
 7. The method of claim 1 wherein one of said devicesat a first end of said list is a first device to be subject to saiddynamically modifying if said network resource would be over-utilized bysaid traffic profiles.
 8. The method of claim 7 wherein said dynamicallymodifying comprises decreasing an overall bit-rate cap or data volumecap for said one of said devices at said first end of said list.
 9. Themethod of claim 8 wherein said decreasing brings said traffic profilesinto alignment with full utilization of a capacity of said networkresource.
 10. An apparatus for dynamic allocation of network resourcescomprising: a network interface configured to receive a service profilefor each of a plurality of devices sharing a network resource and toreceive a billing profile for each of said plurality of devices; and aprocessor connected to said network interface and configured to generatea prioritization list defining an order of said plurality of devices,based on said billing profiles and on a billing history for each of saidplurality of devices; said processor further configured to repeat:receiving traffic profiles over said network resource for said pluralityof devices; managing said network resource according to said serviceprofile and said billing profile if said network resource is fullyutilized by said traffic profiles; and, selecting at least one of saiddevices based on said prioritization list and dynamically modifying atleast one of said service profile and said billing profile for saidselected devices, if said network resource is under-utilized by saidtraffic profile or if said network resource would be over-utilized bysaid traffic profiles; until said plurality of devices no longercontinue to share said network resource; and said processor furtherconfigured, when said plurality of devices are no longer sharing saidnetwork resource, to clear said prioritization list.
 11. The apparatusof claim 10 wherein said dynamically modifying comprises increasing orreducing an overall bit-rate cap or data volume cap in a service profilefor at least one of said devices.
 12. The apparatus of claim 11 whereinsaid dynamically modifying further comprises increasing or decreasing arate or a charge in a billing profile for said at least one of saiddevices.
 13. The apparatus of claim 10 wherein one of said devices at afirst end of said list is a first device to be subject to saiddynamically modifying if said network resource would be over-utilized bysaid traffic profiles.
 14. The apparatus of claim 10 wherein one of saiddevices at a first end of said list is a first device to be subject tosaid dynamically modifying if said network resource would beunder-utilized by said traffic profiles.
 15. The apparatus of claim 10wherein said apparatus is incorporated into a policy server thatconnects to said devices via a public land mobile networkinfrastructure.
 16. The apparatus of claim 10 wherein said apparatus isincorporated into a billing server that connects to said devices via apublic land mobile network infrastructure.
 17. The apparatus of claim 10wherein said network interface is configured to connect to a policyserver and a billing server that are each connectable to said devicesvia a public land mobile network infrastructure.
 18. Acomputer-implemented method for dynamic allocation of network resourcescomprising: grouping, by a computing system that includes one or morecellular network elements, a plurality of computing devices sharing acellular network resource; receiving a service profile for each of theplurality of devices sharing the network resource; receiving a billingprofile for each of said plurality of devices; generating aprioritization list defining an order of said plurality of deviceswithin the group, based on said billing profiles and on a billinghistory for each of said plurality of devices; repeating, by thecomputing system: determining and receiving traffic profiles indicatingattributes of current traffic activity over said network resource bysaid plurality of devices; managing said network resource according tosaid service profile and said billing profile if said network resourceis fully utilized by said traffic profiles; and, selecting at least oneof said devices based on said prioritization list; and dynamicallymodifying said service profile for the selected devices, if said networkresource is under-utilized by said traffic profiles or if said networkresource would be over-utilized by said traffic profiles, wherein thedynamic modification includes automatically reducing a maximumguaranteed bit rate to a lower guaranteed bit rate in response tocontention for the shared network resource; until said plurality ofdevices no longer continue to share said network resource; and when saidplurality of devices are no longer sharing said network resource,clearing said prioritization list.
 19. The method of claim 18, whereinthe network resource is a cellular base station.
 20. The method of claim18, wherein the network resource is a back-haul link.
 21. The method ofclaim 18, wherein the traffic profiles over the network resourceindicate: data rates, data volumes, types of content, radio access type,congestion information, and device type.
 22. The method of claim 18,wherein the dynamic modification further includes modifying a datavolume cap.
 23. The method of claim 18, wherein the dynamic modificationfurther includes modifying a restriction on one or more content types.24. The method of claim 18, wherein the dynamic modification furtherincludes modifying a restriction on one or more protocol types.
 25. Themethod of claim 18, wherein the receiving the service profile for eachof the plurality of devices includes one or more of: accessing a memoryof the computing system or receiving data via a network link.
 26. Themethod of claim 18, wherein the dynamic modification is performed onlyif said network resource would be over-utilized by said trafficprofiles.
 27. A method for dynamic allocation of network resourcescomprising: grouping, by a computing system of a cellular network, aplurality of computing devices sharing a cellular network resource;receiving, by the computing system, a service profile for each of theplurality of devices sharing the network resource; receiving, by thecomputing system, a billing profile for each of said plurality ofdevices; generating, by the computing system, a prioritization listdefining an order of said plurality of devices, within the group basedon said billing profiles and on a billing history for each of saidplurality of devices; repeating, by the computing system, until saidplurality of devices no longer continue to share said network resource:receiving traffic profiles over said network resource for said pluralityof devices, wherein the traffic profiles over said network resourceindicate attributes of data communicated by corresponding ones of thedevices using the network resource; managing said network resourceaccording to said service profile and said billing profile if saidnetwork resource is fully utilized by said traffic profiles; and,selecting at least one of said devices based on said prioritizationlist; and dynamically modifying said service profile for said selecteddevices, if said network resource is under-utilized by said trafficprofile or if said network resource would be over-utilized by saidtraffic profiles, wherein the dynamically modifying includes modifying arestriction on communications for the at least one of said plurality ofdevices; managing said network resource to according to at least onedynamically modified service profile; and when said plurality of devicesare no longer sharing said network resource, the computing systemclearing said prioritization list.
 28. The method of claim 27, whereinthe network resource is a cellular base station or a back-haul link. 29.The method of claim 28, wherein the traffic profiles over the networkresource indicate: wherein the traffic profiles over the networkresource indicate: data rates, data volumes, types of content, radioaccess type, congestion information, and device type.
 30. The method ofclaim 27, wherein the dynamic modification includes: modifying a datarate cap, modifying a data volume cap, modifying a restriction on one ormore content types, and modifying a restriction on one or more protocoltypes.
 31. The method of claim 27, wherein the dynamic modificationincludes modifying a restriction on video content.
 32. The method ofclaim 27, wherein the receiving the service profile for each of theplurality of devices includes one or more of: accessing a memory of thecomputing system or receiving data via a network link.
 33. The method ofclaim 27, wherein the dynamic modification is performed if said networkresource would be over-utilized by said traffic profiles and not if saidnetwork resource would be under-utilized by said traffic profiles.
 34. Amethod for dynamic allocation of network resources comprising: grouping,by a computing system of a cellular network, a plurality of computingdevices sharing a cellular network resource, wherein the cellularnetwork resource is a base station or a back-haul link; receiving, bythe computing system, a service profile for each of the plurality ofdevices sharing the network resource; receiving, by the computingsystem, a billing profile for each of said plurality of devices;generating, by the computing system, a prioritization list defining anorder of said plurality of devices, based on said billing profiles andon a billing history for each of said plurality of devices; repeating,by the computing system: receiving traffic profiles that indicateattributes of current traffic activity over said network resource foreach of said plurality of devices; managing said network resourceaccording to said service profile and said billing profile if saidnetwork resource is fully utilized by said traffic profiles, wherein thetraffic profiles indicate data rates, data volumes, and types of contentfor ones of said plurality of devices; and, selecting at least one ofsaid devices based on said prioritization list and dynamically modifyingsaid service profile for said at least one selected devices, if saidnetwork resource is under-utilized by said traffic profiles or if saidnetwork resource would be over-utilized by said traffic profiles whereinthe dynamic modification includes: automatically reducing a maximumguaranteed bit rate to a lower guaranteed bit rate in response tocontention for the shared network resource; and adjusting a restrictionon one or more multimedia content types in response to contention forthe shared network resource; until said plurality of devices no longercontinue to share said network resource; and when said plurality ofdevices are no longer sharing said network resource, the computingsystem clearing said prioritization list.
 35. The method of claim 34,wherein the receiving the service profile for each of the plurality ofdevices includes one or more of: accessing a memory of the computingsystem or receiving data via a network link.
 36. The method of claim 34,wherein the dynamic modification is performed if said network resourcewould be over-utilized by said traffic profiles and not if said networkresource would be under-utilized by said traffic profiles.
 37. Anapparatus for dynamic allocation of network resources in a cellularnetwork comprising: a network interface configured to receive a serviceprofile for each of a plurality of devices sharing a hardware networkresource and to receive a billing profile for each of said plurality ofdevices; and a processor connected to said network interface andconfigured to group the plurality of devices sharing the cellularnetwork resources and generate a prioritization list defining an orderof said plurality of devices within the group, based on said billingprofiles and on a billing history for each of said plurality of devices;wherein said processor further configured to repeat: receiving trafficprofiles over said network resource for said plurality of devices;managing said network resource according to said service profile andsaid billing profile if said network resource is fully utilized by saidtraffic profiles; and, selecting at least one of said devices based onsaid prioritization list; and dynamically modifying said service profilefor said selected devices, if said network resource is underutilized bycommunications corresponding to said traffic profiles or if said networkresource would be over-utilized by communications corresponding to saidtraffic profiles wherein the dynamically modifying includes modifying arestriction on communications for the at least one of said plurality ofdevices; until said plurality of devices no longer continue to sharesaid network resource; and wherein said processor is further configured,when said plurality of devices are no longer sharing said networkresource, to clear said prioritization list.
 38. The apparatus of claim37, wherein the restriction on communications is a guaranteed bit rate.39. The apparatus of claim 37, wherein the network resource is one of acellular base station or a backhaul link.
 40. The apparatus of claim 37,wherein the processor is configured to perform the dynamic modificationonly if said network resource would be over-utilized by said trafficprofiles.
 41. A computer-implemented method for dynamic allocation ofnetwork resources comprising: grouping, by a computing system thatincludes one or more cellular network elements, a plurality of computingdevices sharing a cellular network resource; receiving a service profilefor each of the plurality of devices sharing the network resource;receiving a billing profile for each of said plurality of devices;generating a prioritization list defining an order of said plurality ofdevices within the group, based on said billing profiles and on abilling history for each of said plurality of devices; repeating, by thecomputing system: receiving predetermined traffic profiles indicatingattributes of current traffic activity over said network resource bysaid plurality of devices; managing said network resource according tosaid service profile and said billing profile if said network resourceis fully utilized by said traffic profiles; and, selecting at least oneof said devices based on said prioritization list; and dynamicallymodifying said service profile for the selected devices, if said networkresource is under-utilized by said traffic profiles or if said networkresource would be over-utilized by said traffic profiles, wherein thedynamic modification includes automatically reducing a maximumguaranteed bit rate to a lower guaranteed bit rate in response tocontention for the shared network resource; until said plurality ofdevices no longer continue to share said network resource; and when saidplurality of devices are no longer sharing said network resource,clearing said prioritization list.
 42. A computer-implemented method fordynamic allocation of network resources comprising: grouping, by acomputing system that includes one or more cellular network elements, aplurality of computing devices sharing a cellular network resource;receiving a service profile for each of the plurality of devices sharingthe network resource; receiving a billing profile for each of saidplurality of devices; generating a prioritization list defining an orderof said plurality of devices within the group, based on said billingprofiles and on a billing history for each of said plurality of devices;repeating, by the computing system: determining and receiving trafficprofiles indicating attributes of current traffic activity over saidnetwork resource by said plurality of devices; managing said networkresource according to said service profile and said billing profile ifsaid network resource is fully utilized by said traffic profiles; and,selecting at least one of said devices based on said prioritizationlist; and dynamically modifying at least one of said service profile andsaid billing profile for the selected devices, if said network resourceis under-utilized by said traffic profiles or if said network resourcewould be over-utilized by said traffic profiles, wherein the dynamicmodification includes automatically reducing a maximum guaranteed bitrate to a lower guaranteed bit rate in response to contention for theshared network resource; until said plurality of devices no longercontinue to share said network resource; and when said plurality ofdevices are no longer sharing said network resource, clearing saidprioritization list.